package com.warehouse.module.business.service.cargoplan;

import com.warehouse.framework.common.pojo.PageResult;
import com.warehouse.module.business.controller.admin.cargoinfo.vo.CargoInfoRespVO;
import com.warehouse.module.business.controller.admin.cargoplan.vo.CancelPlanVO;
import com.warehouse.module.business.controller.admin.cargoplan.vo.CargoPlanExcelRespVO;
import com.warehouse.module.business.controller.admin.cargoplan.vo.CargoPlanPageReqVO;
import com.warehouse.module.business.dal.dataobject.cargoplan.CargoPlanDO;

import java.util.List;

public interface CargoPlanService {

    /**
     * 新增计划
     * @param cargoPlanDO
     */
    void addPlan(CargoPlanDO cargoPlanDO);

    /**
     * 修改计划
     */
    void editPlan(CancelPlanVO cancelPlanVO);

    /**
     * 报关退回移除计划
     * @param cancelPlanVO
     */
    void backPlan(CancelPlanVO cancelPlanVO);

    /**
     * 删除计划
     * @param id
     */
    void delPlan(Long id);

    /**
     * 查找计划
     * @param cargoId
     * @return
     */
    CargoPlanDO getByCargoId(Long cargoId);

    /**
     * 分页查询列表
     * @param req
     * @return
     */
    PageResult<CargoPlanDO> pageCargoPlans(CargoPlanPageReqVO req);

    /**
     * 根据计划Id查看计划详情
     * @param id
     * @return
     */
    List<CargoInfoRespVO> listCargoInfosByPlanId(Long id);

    /**
     * 获取计划历史下载的excel数据
     * @param id
     * @return
     */
    List<CargoPlanExcelRespVO> getCargoPlanExcel(Long id);
}
